fn other_fun() {

    println!("This is a function");
}

//fn other_fun1(a: i32, b: u32) {
//    println!("a = {}, b = {}", a, b);
//}

fn main() {

    other_fun();

    let x: i32 = -92;
    let y: u32 = 88;
    other_fun1(x, y);


    let z:i32 = 12;
    let r = other_fun2(x, z);
    println!("r = {}", r);


    let r3 = other_fun3(x, z);
    println!("r3 = {}", r3);


    let r4 = other_fun4(x, z);
    println!("r4 = {}", r4);

    println!("Hello, world!");
    

    // 语句是执行一些操作，但是不会返回值的指令
    // let y = 1; // 语句，不返回值
    // let x = (let y = 1); // error
    //
    // 表达式会计算一些值
    let y = {
        let x = 1;
        x + 1
    };
    println!("y = {} ", y);


}

fn other_fun1(a: i32, b: u32) {
    println!("a = {}, b = {}", a, b);
}


fn other_fun2(a:i32, b:i32) -> i32{
    let result = a + b;
    return result;
}
fn other_fun3(a:i32, b:i32) -> i32{
    let result = a + b;
    result
}
fn other_fun4(a:i32, b:i32) -> i32{
     a + b
}
